package com.charley.icloud.office.factory;

import com.charley.icloud.office.enums.WordContentTypeEnum;
import com.charley.icloud.office.service.IGenerateWord;

import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

/**
 * 生成word工厂
 *  主要是便于对各标签生成的数据进行管理
 **/
public class GenerateWordFactory {

    // TYPE_BACK_DATA：表示各标签封装数据的类与标签的一一对应
    private static final Map<WordContentTypeEnum, IGenerateWord> TYPE_BACK_DATA = new HashMap<>();

    public static void register(WordContentTypeEnum typeEnum, IGenerateWord word){
        if (Objects.nonNull(typeEnum)){
            TYPE_BACK_DATA.put(typeEnum,word);
        }
    }

    /**
     * 根据标签类型获取对应生成的数据
     * */
    public static IGenerateWord getBackData(WordContentTypeEnum typeEnum){
        return TYPE_BACK_DATA.get(typeEnum);
    }
}
